package com.irdstudio.efp.report.service.dao;

import com.irdstudio.efp.report.service.domain.RptCompensationStatement;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * RptCompensationStatement的Dao接口
 *
 * @author
 */
public interface RptCompensationStatementDao {

	/**
	 * 通过RptCompensationStatement的id获得RptCompensationStatement对象
	 *
	 * @param id
	 * @return
	 */
	RptCompensationStatement selectRptCompensationStatementById(String id);

	/**
	 * 获得一个RptCompensationStatement对象,以参数RptCompensationStatement对象中不为空的属性作为条件进行查询,返回符合条件的第一条
	 *
	 * @param obj
	 * @return
	 */
	RptCompensationStatement selectRptCompensationStatementObjSingle(RptCompensationStatement obj);

	/**
	 * 获得一个RptCompensationStatement对象,以参数RptCompensationStatement对象中不为空的属性作为条件进行查询
	 *
	 * @param obj
	 * @return
	 */
	List<RptCompensationStatement> selectRptCompensationStatementByObj(RptCompensationStatement obj);

	/**
	 * 插入RptCompensationStatement到数据库,包括null值
	 *
	 * @param value
	 * @return
	 */
	int insertRptCompensationStatement(RptCompensationStatement value);

	/**
	 * 插入RptCompensationStatement中属性值不为null的数据到数据库
	 *
	 * @param value
	 * @return
	 */
	int insertNotNullRptCompensationStatement(RptCompensationStatement value);

	/**
	 * 批量插入RptCompensationStatement到数据库,包括null值
	 *
	 * @param value
	 * @return
	 */
	int insertRptCompensationStatementByBatch(List<RptCompensationStatement> value);


	/**
	 * 批量插入，如果主键存在则更新
	 * @param list
	 * @return
	 */
	int insertOrUpdateBatch(@Param("list") List<RptCompensationStatement> list);

	/**
	 * 通过RptCompensationStatement的id删除RptCompensationStatement
	 *
	 * @param id
	 * @return
	 */
	int deleteRptCompensationStatementById(String id);


	/**
	 * 通过RptCompensationStatement的id更新RptCompensationStatement中的数据,包括null值
	 *
	 * @param enti
	 * @return
	 */
	int updateRptCompensationStatementById(RptCompensationStatement enti);

	/**
	 * 通过RptCompensationStatement的id更新RptCompensationStatement中属性不为null的数据
	 *
	 * @param enti
	 * @return
	 */
	int updateNotNullRptCompensationStatementById(RptCompensationStatement enti);

}